import java.util.Scanner;

public class Game {

    Hero hero;
    Trader trader = new Trader();
    Battle battle = new Battle();
    Scanner scan = new Scanner(System.in);
    String lastComand = "1";

    public static void main(String[] args) {
        Game game = new Game();
        game.start();

    }

    public void start() {
        createHero();
    }

    public void goToFight() {
        int random = (int) (Math.random() * 100);

        Character monster;

        if (random < 50) {
            monster = new Monster("Скелет",
                    25,
                    20,
                    10,
                    100,
                    10);
        } else {
            monster = new Monster(
                    "Гоблин",
                    20,
                    10,
                    5,
                    30,
                    20);
        }

        System.out.println("Вы будите сражаться c персонажем - " + monster.getName());

        boolean battleResult = battle.fight(hero, monster);

        if (battleResult) {
            System.out.println("Вы выйграли этот раунд, хотите еще? (Да/Нет)");

            String comand = scan.nextLine();

            readCommand(comand);
        } else {
            System.out.println("К сожалению вы проиграли, я сожалею!");
        }

    }

    public void goToCity() {
        System.out.println("Куда вы хотите пойти?");
        System.out.println("1. К Торговцу");
        System.out.println("2. В темный лес");
        System.out.println("3. Выход");

        String command = scan.nextLine();
        readCommand(command);
    }

    public void createHero() {
        if (hero == null) {
            System.out.println("Введите имя своего героя: ");

            String name = scan.nextLine();

            if (name.equals("")) {
                System.out.println("Имя не может быть пустым");
                createHero();
            }

            hero = new Hero(name);
            goToCity();
        }
    }

    public void readCommand(String command) {
        switch (command) {
            case "1":
                lastComand = command;
                String tradeCommand = trader.goToTrader(hero);
                if (!tradeCommand.equals("")) {
                    readCommand(tradeCommand);
                }
                break;
            case "2":
                lastComand = command;
                goToFight();
                break;
            case "3":
                lastComand = command;
                goToCity();
                break;
            case "Да":
            case "да":
                System.out.println(lastComand);
                readCommand(lastComand);
            case "Нет":
            case "нет":
                goToCity();
                break;
            default:
                break;
        }

    }
}
